const echarts = require('./ec-canvas/echarts') //路径一定要正确否则会调用错误

/**
 * 高阶函数，返回一个“初始化Bar图表方法”的方法
 * barData：图表使用的数据
 */
function createBarChart(barData1) {

  var barData = {
    title: barData1.title,
    names: barData1.names.sort(function (a, b) { return a - b }),
    myScore: barData1.myScore.sort(function (a, b) { return a - b }),
    averageScore: barData1.averageScore.sort(function (a, b) { return a - b }),
  }
  const initBar = function(canvas, width, height) {
    var chart = echarts.init(canvas, null, {
      width: width,
      height: height
    });
    canvas.setChart(chart);

    var option = {
      title: {
        left: 'left',
        text: barData.title,
        textStyle: { //标题样式
          fontStyle: 'normal', //字体风格
          fontSize: 14
        }
      },
      legend: {
        data: [{
            name: '我的得分',
            // 强制设置图形为圆。
            icon: 'circle',
          },
          {
            name: '平均得分',
            // 强制设置图形为圆。
            icon: 'circle',
          }
        ],
        left: 'right',
      },
      yAxis: {

        type: 'category',
        axisTick: {
          show: false
        },
        data: barData.names
      },
      xAxis: {
        show: false,
        type: 'value'
      },
      barGap: '-75%',
      series: [{
        silent: true,
        name: '我的得分',
        // label: {
        //   show: true,
        //   color : '#000',
        //   position: 'right'
        // },
        type: 'bar',
        data: barData.myScore,
        itemStyle: {
          color: '#a5aad9'
        },
        barWidth: 20,
      }, {
        silent: true,
        name: '平均得分',
        // label: {
        //   show: true
        // },
        type: 'bar',
        data: barData.averageScore,
        itemStyle: {
          color: '#825f8e'
        },
        barWidth: 10,
      }]
    };
    chart.setOption(option);
    return chart;
  }
  return initBar;
}


/**
 * 高阶函数，返回一个“初始化Bar图表方法”的方法
 * barData：图表使用的数据
 */
function createTOP5Chart(barData) {
  var barDataTop5 = {
    title: "优势TOP5",
    names: barData.names.sort(function (a, b) { return a - b }).slice(-5),
    myScore: barData.myScore.sort(function (a, b) { return a - b }).slice(-5),
    averageScore: barData.averageScore.sort(function (a, b) { return a - b }).slice(-5),
  }

  const initBar = function(canvas, width, height) {
    var chart = echarts.init(canvas, null, {
      width: width,
      height: height
    });
    canvas.setChart(chart);

    var option = {
      title: {
        left: 'left',
        text: barDataTop5.title,
        textStyle: { //标题样式
          fontStyle: 'normal', //字体风格
          fontSize: 14
        }
      },
      yAxis: {

        type: 'category',
        axisTick: {
          show: false
        },
        data: barDataTop5.names
      },
      xAxis: {
        show: false,
        type: 'value'
      },
      barGap: '-75%',
      series: [{
        silent: true,
        name: '我的得分',
        // label: {
        //   show: true,
        //   color : '#000',
        //   position: 'right'
        // },
        type: 'bar',
        data: barDataTop5.myScore,
        itemStyle: {
          color: '#a5aad9'
        },
        barWidth: 20,
      }]
    };
    chart.setOption(option);
    return chart;
  }
  return initBar;
}

module.exports = {
  createBarChart: createBarChart,
  createTOP5Chart: createTOP5Chart
};